package cn.pojo;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class SellerExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public SellerExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        protected void addCriterionForJDBCDate(String condition, Date value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value.getTime()), property);
        }

        protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            List<java.sql.Date> dateList = new ArrayList<java.sql.Date>();
            Iterator<Date> iter = values.iterator();
            while (iter.hasNext()) {
                dateList.add(new java.sql.Date(iter.next().getTime()));
            }
            addCriterion(condition, dateList, property);
        }

        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Long value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Long value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Long value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Long value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Long value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Long value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Long> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Long> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Long value1, Long value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Long value1, Long value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andSellerNameIsNull() {
            addCriterion("sellerName is null");
            return (Criteria) this;
        }

        public Criteria andSellerNameIsNotNull() {
            addCriterion("sellerName is not null");
            return (Criteria) this;
        }

        public Criteria andSellerNameEqualTo(String value) {
            addCriterion("sellerName =", value, "sellerName");
            return (Criteria) this;
        }

        public Criteria andSellerNameNotEqualTo(String value) {
            addCriterion("sellerName <>", value, "sellerName");
            return (Criteria) this;
        }

        public Criteria andSellerNameGreaterThan(String value) {
            addCriterion("sellerName >", value, "sellerName");
            return (Criteria) this;
        }

        public Criteria andSellerNameGreaterThanOrEqualTo(String value) {
            addCriterion("sellerName >=", value, "sellerName");
            return (Criteria) this;
        }

        public Criteria andSellerNameLessThan(String value) {
            addCriterion("sellerName <", value, "sellerName");
            return (Criteria) this;
        }

        public Criteria andSellerNameLessThanOrEqualTo(String value) {
            addCriterion("sellerName <=", value, "sellerName");
            return (Criteria) this;
        }

        public Criteria andSellerNameLike(String value) {
            addCriterion("sellerName like", value, "sellerName");
            return (Criteria) this;
        }

        public Criteria andSellerNameNotLike(String value) {
            addCriterion("sellerName not like", value, "sellerName");
            return (Criteria) this;
        }

        public Criteria andSellerNameIn(List<String> values) {
            addCriterion("sellerName in", values, "sellerName");
            return (Criteria) this;
        }

        public Criteria andSellerNameNotIn(List<String> values) {
            addCriterion("sellerName not in", values, "sellerName");
            return (Criteria) this;
        }

        public Criteria andSellerNameBetween(String value1, String value2) {
            addCriterion("sellerName between", value1, value2, "sellerName");
            return (Criteria) this;
        }

        public Criteria andSellerNameNotBetween(String value1, String value2) {
            addCriterion("sellerName not between", value1, value2, "sellerName");
            return (Criteria) this;
        }

        public Criteria andSellerUserIsNull() {
            addCriterion("sellerUser is null");
            return (Criteria) this;
        }

        public Criteria andSellerUserIsNotNull() {
            addCriterion("sellerUser is not null");
            return (Criteria) this;
        }

        public Criteria andSellerUserEqualTo(String value) {
            addCriterion("sellerUser =", value, "sellerUser");
            return (Criteria) this;
        }

        public Criteria andSellerUserNotEqualTo(String value) {
            addCriterion("sellerUser <>", value, "sellerUser");
            return (Criteria) this;
        }

        public Criteria andSellerUserGreaterThan(String value) {
            addCriterion("sellerUser >", value, "sellerUser");
            return (Criteria) this;
        }

        public Criteria andSellerUserGreaterThanOrEqualTo(String value) {
            addCriterion("sellerUser >=", value, "sellerUser");
            return (Criteria) this;
        }

        public Criteria andSellerUserLessThan(String value) {
            addCriterion("sellerUser <", value, "sellerUser");
            return (Criteria) this;
        }

        public Criteria andSellerUserLessThanOrEqualTo(String value) {
            addCriterion("sellerUser <=", value, "sellerUser");
            return (Criteria) this;
        }

        public Criteria andSellerUserLike(String value) {
            addCriterion("sellerUser like", value, "sellerUser");
            return (Criteria) this;
        }

        public Criteria andSellerUserNotLike(String value) {
            addCriterion("sellerUser not like", value, "sellerUser");
            return (Criteria) this;
        }

        public Criteria andSellerUserIn(List<String> values) {
            addCriterion("sellerUser in", values, "sellerUser");
            return (Criteria) this;
        }

        public Criteria andSellerUserNotIn(List<String> values) {
            addCriterion("sellerUser not in", values, "sellerUser");
            return (Criteria) this;
        }

        public Criteria andSellerUserBetween(String value1, String value2) {
            addCriterion("sellerUser between", value1, value2, "sellerUser");
            return (Criteria) this;
        }

        public Criteria andSellerUserNotBetween(String value1, String value2) {
            addCriterion("sellerUser not between", value1, value2, "sellerUser");
            return (Criteria) this;
        }

        public Criteria andSellerPasswordIsNull() {
            addCriterion("sellerPassword is null");
            return (Criteria) this;
        }

        public Criteria andSellerPasswordIsNotNull() {
            addCriterion("sellerPassword is not null");
            return (Criteria) this;
        }

        public Criteria andSellerPasswordEqualTo(String value) {
            addCriterion("sellerPassword =", value, "sellerPassword");
            return (Criteria) this;
        }

        public Criteria andSellerPasswordNotEqualTo(String value) {
            addCriterion("sellerPassword <>", value, "sellerPassword");
            return (Criteria) this;
        }

        public Criteria andSellerPasswordGreaterThan(String value) {
            addCriterion("sellerPassword >", value, "sellerPassword");
            return (Criteria) this;
        }

        public Criteria andSellerPasswordGreaterThanOrEqualTo(String value) {
            addCriterion("sellerPassword >=", value, "sellerPassword");
            return (Criteria) this;
        }

        public Criteria andSellerPasswordLessThan(String value) {
            addCriterion("sellerPassword <", value, "sellerPassword");
            return (Criteria) this;
        }

        public Criteria andSellerPasswordLessThanOrEqualTo(String value) {
            addCriterion("sellerPassword <=", value, "sellerPassword");
            return (Criteria) this;
        }

        public Criteria andSellerPasswordLike(String value) {
            addCriterion("sellerPassword like", value, "sellerPassword");
            return (Criteria) this;
        }

        public Criteria andSellerPasswordNotLike(String value) {
            addCriterion("sellerPassword not like", value, "sellerPassword");
            return (Criteria) this;
        }

        public Criteria andSellerPasswordIn(List<String> values) {
            addCriterion("sellerPassword in", values, "sellerPassword");
            return (Criteria) this;
        }

        public Criteria andSellerPasswordNotIn(List<String> values) {
            addCriterion("sellerPassword not in", values, "sellerPassword");
            return (Criteria) this;
        }

        public Criteria andSellerPasswordBetween(String value1, String value2) {
            addCriterion("sellerPassword between", value1, value2, "sellerPassword");
            return (Criteria) this;
        }

        public Criteria andSellerPasswordNotBetween(String value1, String value2) {
            addCriterion("sellerPassword not between", value1, value2, "sellerPassword");
            return (Criteria) this;
        }

        public Criteria andSellerSexIsNull() {
            addCriterion("sellerSex is null");
            return (Criteria) this;
        }

        public Criteria andSellerSexIsNotNull() {
            addCriterion("sellerSex is not null");
            return (Criteria) this;
        }

        public Criteria andSellerSexEqualTo(String value) {
            addCriterion("sellerSex =", value, "sellerSex");
            return (Criteria) this;
        }

        public Criteria andSellerSexNotEqualTo(String value) {
            addCriterion("sellerSex <>", value, "sellerSex");
            return (Criteria) this;
        }

        public Criteria andSellerSexGreaterThan(String value) {
            addCriterion("sellerSex >", value, "sellerSex");
            return (Criteria) this;
        }

        public Criteria andSellerSexGreaterThanOrEqualTo(String value) {
            addCriterion("sellerSex >=", value, "sellerSex");
            return (Criteria) this;
        }

        public Criteria andSellerSexLessThan(String value) {
            addCriterion("sellerSex <", value, "sellerSex");
            return (Criteria) this;
        }

        public Criteria andSellerSexLessThanOrEqualTo(String value) {
            addCriterion("sellerSex <=", value, "sellerSex");
            return (Criteria) this;
        }

        public Criteria andSellerSexLike(String value) {
            addCriterion("sellerSex like", value, "sellerSex");
            return (Criteria) this;
        }

        public Criteria andSellerSexNotLike(String value) {
            addCriterion("sellerSex not like", value, "sellerSex");
            return (Criteria) this;
        }

        public Criteria andSellerSexIn(List<String> values) {
            addCriterion("sellerSex in", values, "sellerSex");
            return (Criteria) this;
        }

        public Criteria andSellerSexNotIn(List<String> values) {
            addCriterion("sellerSex not in", values, "sellerSex");
            return (Criteria) this;
        }

        public Criteria andSellerSexBetween(String value1, String value2) {
            addCriterion("sellerSex between", value1, value2, "sellerSex");
            return (Criteria) this;
        }

        public Criteria andSellerSexNotBetween(String value1, String value2) {
            addCriterion("sellerSex not between", value1, value2, "sellerSex");
            return (Criteria) this;
        }

        public Criteria andSellerBirthdayIsNull() {
            addCriterion("sellerBirthday is null");
            return (Criteria) this;
        }

        public Criteria andSellerBirthdayIsNotNull() {
            addCriterion("sellerBirthday is not null");
            return (Criteria) this;
        }

        public Criteria andSellerBirthdayEqualTo(Date value) {
            addCriterionForJDBCDate("sellerBirthday =", value, "sellerBirthday");
            return (Criteria) this;
        }

        public Criteria andSellerBirthdayNotEqualTo(Date value) {
            addCriterionForJDBCDate("sellerBirthday <>", value, "sellerBirthday");
            return (Criteria) this;
        }

        public Criteria andSellerBirthdayGreaterThan(Date value) {
            addCriterionForJDBCDate("sellerBirthday >", value, "sellerBirthday");
            return (Criteria) this;
        }

        public Criteria andSellerBirthdayGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("sellerBirthday >=", value, "sellerBirthday");
            return (Criteria) this;
        }

        public Criteria andSellerBirthdayLessThan(Date value) {
            addCriterionForJDBCDate("sellerBirthday <", value, "sellerBirthday");
            return (Criteria) this;
        }

        public Criteria andSellerBirthdayLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("sellerBirthday <=", value, "sellerBirthday");
            return (Criteria) this;
        }

        public Criteria andSellerBirthdayIn(List<Date> values) {
            addCriterionForJDBCDate("sellerBirthday in", values, "sellerBirthday");
            return (Criteria) this;
        }

        public Criteria andSellerBirthdayNotIn(List<Date> values) {
            addCriterionForJDBCDate("sellerBirthday not in", values, "sellerBirthday");
            return (Criteria) this;
        }

        public Criteria andSellerBirthdayBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("sellerBirthday between", value1, value2, "sellerBirthday");
            return (Criteria) this;
        }

        public Criteria andSellerBirthdayNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("sellerBirthday not between", value1, value2, "sellerBirthday");
            return (Criteria) this;
        }

        public Criteria andSellerIdCardIsNull() {
            addCriterion("sellerIdCard is null");
            return (Criteria) this;
        }

        public Criteria andSellerIdCardIsNotNull() {
            addCriterion("sellerIdCard is not null");
            return (Criteria) this;
        }

        public Criteria andSellerIdCardEqualTo(String value) {
            addCriterion("sellerIdCard =", value, "sellerIdCard");
            return (Criteria) this;
        }

        public Criteria andSellerIdCardNotEqualTo(String value) {
            addCriterion("sellerIdCard <>", value, "sellerIdCard");
            return (Criteria) this;
        }

        public Criteria andSellerIdCardGreaterThan(String value) {
            addCriterion("sellerIdCard >", value, "sellerIdCard");
            return (Criteria) this;
        }

        public Criteria andSellerIdCardGreaterThanOrEqualTo(String value) {
            addCriterion("sellerIdCard >=", value, "sellerIdCard");
            return (Criteria) this;
        }

        public Criteria andSellerIdCardLessThan(String value) {
            addCriterion("sellerIdCard <", value, "sellerIdCard");
            return (Criteria) this;
        }

        public Criteria andSellerIdCardLessThanOrEqualTo(String value) {
            addCriterion("sellerIdCard <=", value, "sellerIdCard");
            return (Criteria) this;
        }

        public Criteria andSellerIdCardLike(String value) {
            addCriterion("sellerIdCard like", value, "sellerIdCard");
            return (Criteria) this;
        }

        public Criteria andSellerIdCardNotLike(String value) {
            addCriterion("sellerIdCard not like", value, "sellerIdCard");
            return (Criteria) this;
        }

        public Criteria andSellerIdCardIn(List<String> values) {
            addCriterion("sellerIdCard in", values, "sellerIdCard");
            return (Criteria) this;
        }

        public Criteria andSellerIdCardNotIn(List<String> values) {
            addCriterion("sellerIdCard not in", values, "sellerIdCard");
            return (Criteria) this;
        }

        public Criteria andSellerIdCardBetween(String value1, String value2) {
            addCriterion("sellerIdCard between", value1, value2, "sellerIdCard");
            return (Criteria) this;
        }

        public Criteria andSellerIdCardNotBetween(String value1, String value2) {
            addCriterion("sellerIdCard not between", value1, value2, "sellerIdCard");
            return (Criteria) this;
        }

        public Criteria andSellerEmailIsNull() {
            addCriterion("sellerEmail is null");
            return (Criteria) this;
        }

        public Criteria andSellerEmailIsNotNull() {
            addCriterion("sellerEmail is not null");
            return (Criteria) this;
        }

        public Criteria andSellerEmailEqualTo(String value) {
            addCriterion("sellerEmail =", value, "sellerEmail");
            return (Criteria) this;
        }

        public Criteria andSellerEmailNotEqualTo(String value) {
            addCriterion("sellerEmail <>", value, "sellerEmail");
            return (Criteria) this;
        }

        public Criteria andSellerEmailGreaterThan(String value) {
            addCriterion("sellerEmail >", value, "sellerEmail");
            return (Criteria) this;
        }

        public Criteria andSellerEmailGreaterThanOrEqualTo(String value) {
            addCriterion("sellerEmail >=", value, "sellerEmail");
            return (Criteria) this;
        }

        public Criteria andSellerEmailLessThan(String value) {
            addCriterion("sellerEmail <", value, "sellerEmail");
            return (Criteria) this;
        }

        public Criteria andSellerEmailLessThanOrEqualTo(String value) {
            addCriterion("sellerEmail <=", value, "sellerEmail");
            return (Criteria) this;
        }

        public Criteria andSellerEmailLike(String value) {
            addCriterion("sellerEmail like", value, "sellerEmail");
            return (Criteria) this;
        }

        public Criteria andSellerEmailNotLike(String value) {
            addCriterion("sellerEmail not like", value, "sellerEmail");
            return (Criteria) this;
        }

        public Criteria andSellerEmailIn(List<String> values) {
            addCriterion("sellerEmail in", values, "sellerEmail");
            return (Criteria) this;
        }

        public Criteria andSellerEmailNotIn(List<String> values) {
            addCriterion("sellerEmail not in", values, "sellerEmail");
            return (Criteria) this;
        }

        public Criteria andSellerEmailBetween(String value1, String value2) {
            addCriterion("sellerEmail between", value1, value2, "sellerEmail");
            return (Criteria) this;
        }

        public Criteria andSellerEmailNotBetween(String value1, String value2) {
            addCriterion("sellerEmail not between", value1, value2, "sellerEmail");
            return (Criteria) this;
        }

        public Criteria andSellerTelIsNull() {
            addCriterion("sellerTel is null");
            return (Criteria) this;
        }

        public Criteria andSellerTelIsNotNull() {
            addCriterion("sellerTel is not null");
            return (Criteria) this;
        }

        public Criteria andSellerTelEqualTo(String value) {
            addCriterion("sellerTel =", value, "sellerTel");
            return (Criteria) this;
        }

        public Criteria andSellerTelNotEqualTo(String value) {
            addCriterion("sellerTel <>", value, "sellerTel");
            return (Criteria) this;
        }

        public Criteria andSellerTelGreaterThan(String value) {
            addCriterion("sellerTel >", value, "sellerTel");
            return (Criteria) this;
        }

        public Criteria andSellerTelGreaterThanOrEqualTo(String value) {
            addCriterion("sellerTel >=", value, "sellerTel");
            return (Criteria) this;
        }

        public Criteria andSellerTelLessThan(String value) {
            addCriterion("sellerTel <", value, "sellerTel");
            return (Criteria) this;
        }

        public Criteria andSellerTelLessThanOrEqualTo(String value) {
            addCriterion("sellerTel <=", value, "sellerTel");
            return (Criteria) this;
        }

        public Criteria andSellerTelLike(String value) {
            addCriterion("sellerTel like", value, "sellerTel");
            return (Criteria) this;
        }

        public Criteria andSellerTelNotLike(String value) {
            addCriterion("sellerTel not like", value, "sellerTel");
            return (Criteria) this;
        }

        public Criteria andSellerTelIn(List<String> values) {
            addCriterion("sellerTel in", values, "sellerTel");
            return (Criteria) this;
        }

        public Criteria andSellerTelNotIn(List<String> values) {
            addCriterion("sellerTel not in", values, "sellerTel");
            return (Criteria) this;
        }

        public Criteria andSellerTelBetween(String value1, String value2) {
            addCriterion("sellerTel between", value1, value2, "sellerTel");
            return (Criteria) this;
        }

        public Criteria andSellerTelNotBetween(String value1, String value2) {
            addCriterion("sellerTel not between", value1, value2, "sellerTel");
            return (Criteria) this;
        }

        public Criteria andSellerAddressIsNull() {
            addCriterion("sellerAddress is null");
            return (Criteria) this;
        }

        public Criteria andSellerAddressIsNotNull() {
            addCriterion("sellerAddress is not null");
            return (Criteria) this;
        }

        public Criteria andSellerAddressEqualTo(String value) {
            addCriterion("sellerAddress =", value, "sellerAddress");
            return (Criteria) this;
        }

        public Criteria andSellerAddressNotEqualTo(String value) {
            addCriterion("sellerAddress <>", value, "sellerAddress");
            return (Criteria) this;
        }

        public Criteria andSellerAddressGreaterThan(String value) {
            addCriterion("sellerAddress >", value, "sellerAddress");
            return (Criteria) this;
        }

        public Criteria andSellerAddressGreaterThanOrEqualTo(String value) {
            addCriterion("sellerAddress >=", value, "sellerAddress");
            return (Criteria) this;
        }

        public Criteria andSellerAddressLessThan(String value) {
            addCriterion("sellerAddress <", value, "sellerAddress");
            return (Criteria) this;
        }

        public Criteria andSellerAddressLessThanOrEqualTo(String value) {
            addCriterion("sellerAddress <=", value, "sellerAddress");
            return (Criteria) this;
        }

        public Criteria andSellerAddressLike(String value) {
            addCriterion("sellerAddress like", value, "sellerAddress");
            return (Criteria) this;
        }

        public Criteria andSellerAddressNotLike(String value) {
            addCriterion("sellerAddress not like", value, "sellerAddress");
            return (Criteria) this;
        }

        public Criteria andSellerAddressIn(List<String> values) {
            addCriterion("sellerAddress in", values, "sellerAddress");
            return (Criteria) this;
        }

        public Criteria andSellerAddressNotIn(List<String> values) {
            addCriterion("sellerAddress not in", values, "sellerAddress");
            return (Criteria) this;
        }

        public Criteria andSellerAddressBetween(String value1, String value2) {
            addCriterion("sellerAddress between", value1, value2, "sellerAddress");
            return (Criteria) this;
        }

        public Criteria andSellerAddressNotBetween(String value1, String value2) {
            addCriterion("sellerAddress not between", value1, value2, "sellerAddress");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}